# 本示例运行于python3.6及以上版本
from gmtrade.api import *
from gm.api import *
import talib




# token身份认证
set_token("5be220861ce35a6f97f9398d7967fde449f8ddaf")

# 示例中为掘金官方仿真服务地址；如API接入掘金终端，则填空字符串
set_endpoint("api.myquant.cn:9000")

# 登录账户，account_id为账户ID，必填；account_alias为账号别名，选填
stock = account(account_id='d9e8ca3a-12dc-11ec-a19e-00163e0a4100', account_alias='stock')
future = account(account_id='32a1da7c-12dd-11ec-a19e-00163e0a4100', account_alias='future')
# 可login多个账户，如login(a1, a2, a3)
login(stock, future)

# 回报到达时触发
def on_execution_report(rpt):
    print(f'exec_rpt_count={rpt}')

# 委托状态变化时触发
def on_order_status(order):
    print(f'order_stats_count={order}')

# 交易服务连接成功后触发
def on_trade_data_connected():
    print('已连接交易服务.................')

# 交易服务断开后触发
def on_trade_data_disconnected():
    print('已断开交易服务.................')

# 回报到达时触发
def on_account_status(account_status):
    print(f'on_account_status status={account_status}')

if __name__ == "__main__":
    # start函数用于启动回调事件接收，非必要；事件函数为非阻塞函数，如需要同步执行需自行阻塞
    # filename=__file__用于指定当前运行的文件，如需要指定其他文件filename=‘xxx’
    status = start(filename=__file__)
    if status == 0:
        print('连接交易服务成功.................')
    else:
        print('接交易服务失败.................')
        stop()

    # 开始交易业务

    # 保持进程不退出，否则回调不再生效
    info = input("输入任字符退出")